﻿namespace Journey.Security
{
    using Journey.Domain;
    using System.Collections.Generic;

    /// <summary>
    /// 用户基本信息接口。
    /// </summary>
    public interface IUser : IEntity
    {
        /// <summary>
        /// 用户名称。
        /// </summary>
        string Name { get; }

        /// <summary>
        /// 邮箱。
        /// </summary>
        string Email { get; }

        /// <summary>
        /// 是否可用。
        /// </summary>
        bool Disable { get; }

        /// <summary>
        /// 身份列表。
        /// </summary>
        ICollection<Role> Roles { get; }

        /// <summary>
        /// 确认当前用户是否拥有该权限。
        /// </summary>
        /// <param name="permissionName">权限名称。</param>
        /// <returns>如果当前用户拥有该权限，则为 true；否则为 false。</returns>
        bool IsInPower(string permissionName);
    }
}